// Generally blows up if CX is defined and debug build.

struct Foo
{
#ifdef  CF
    Foo() {}
#endif

#ifdef  DF
    virtual ~Foo() {}
#endif
};

struct Naughty
{
#ifdef  CN
    Naughty() {}
#endif

#ifdef  DN
    virtual ~Naughty() {}
#endif
};

struct X: Naughty, Foo
{
#ifdef CX
    X(): Naughty(), Foo() {}
#else
    X() {}
#endif

#ifdef DX
    virtual ~X() {}
#endif
};

int main()
{
    X* p = new X;
    delete p;  // !!! defined(CX) blows up with MSVC 7.1 debug build.
}
